It is possible to make a story self-contained, but it's a tricky process.
Even when you're used to the process, it still tends to take a bit of trial and error to get everything right. This is not a quick process.

The first thing you need to do is figure out which files the story uses.
There's a program called "detect resources.swf" in the editor's folder that will examine the story's XML file and list all the files it uses.

Using Adobe Flash and Actionscript 2, you open the FLA file for the story player (or an existing story like this one), and import all of the files that the story uses.
Each imported file needs to be given a linkage name that exactly matches its file name. When the story runs, it'll use them instead of the external files.
Also, any files that are imported from resources.swf need to be re-imported from the actual files instead. This is because the story normally reads files stored in resources.swf using something called a "shared library" and you need to replace the shared resources with local copies.

Importing the story's XML is done differently.
In the FLA file, open the library and look inside the movieClip named "scenario.xml"
The XML file's text is stored as a gigantic string variable. XML files contain lots of quotes, so the string should be enclose in single quotes (apostrophies) instead of regular quotes. And because the text is so long, you usually need to divide it up to prevent Flash from complaining about an error. It's a single string variable, and each piece is appended in chunks. The code underneath this turns the text into an XML file in memory, converts it to raw data, and stores it for the rest of the program to use.

Another tricky thing about importing the story's XML is that some XML characters need to be altered. If any of the dialogue has a carriage return, you'll need to replace each one with this code:
	&#xD;
And if your dialogue contains apostrophies, they need to be replaced with this code:
	&apos;
